﻿using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Narwhunderful.Aphelia.Framework.Graphics
{

    public interface IBasicSpriteComponent
    {

        event EventHandler<EventArgs> LocationChanged;
        event EventHandler<EventArgs> SizeChanged;

        SpriteBatch SpriteBatch { get; set; }
        TextureInformation TextureInformation { get; }
        Texture2D Texture { get; set; }
        Vector2 RenderLocation { get; }
        Vector2 Location { get; set; }
        float X { get; set; }
        float Y { get; set; }
        Rectangle SourceRectangle { get; set; }
        int SourceX { get; set; }
        int SourceY { get; set; }
        int Width { get; set; }
        int Height { get; set; }
        Rectangle Bounds { get; }
        Color TintColor { get; set; }

        bool IntersectsBounds(Rectangle rectangle);
        bool IntersectsBounds(IBasicSpriteComponent component);
        bool IntersectsPixels(IBasicSpriteComponent component);

    }

}
